#pragma once

#include <SDL.h>
#include "Graphics.h"
#include "Input.h"
#include "Block.h"

class Application
{
public:
	Application();
	~Application();

	void run()
	{
		init();
		mainLoop();
	}
private:
	void init();
	void mainLoop();

	void initShapes();
	void loadModShapes();
private:
	using BShape = Block::Shape;

	SDL_Window* pWindow = nullptr;
	Graphics* pGraphics = nullptr;
	Input* pInput = nullptr;

	TetrisMap map;
	Block curbloc;
	std::vector<BShape> shapes;

	std::string title;
	int score = 0;

	bool running = true;
};

